Streams কনফিগারেশন এবং ব্যবহার

Database Tutorials - ডাইনামোডিবি (DynamoDB) - DynamoDB Streams |

DynamoDB Streams হল একটি শক্তিশালী বৈশিষ্ট্য যা DynamoDB টেবিলের ডেটা পরিবর্তনগুলির একটি স্বতন্ত্র লগ তৈরি করে। এটি মূলত Change Data Capture (CDC) হিসেবে কাজ করে, যেখানে টেবিলের ডেটায় কোনও পরিবর্তন হলে (যেমন, ইনসার্ট, আপডেট বা ডিলিট) সেই পরিবর্তনগুলি স্ট্রিমে জমা হয়। DynamoDB Streams ব্যবহার করার মাধ্যমে, আপনি পরিবর্তিত ডেটাকে রিয়েল-টাইমে প্রসেস করতে পারেন, এবং অন্যান্য AWS সার্ভিসের সাথে ইন্টিগ্রেট করে আরও শক্তিশালী ও স্মার্ট অ্যাপ্লিকেশন তৈরি করতে পারেন।


DynamoDB Streams কী?

DynamoDB Streams একটি লগ সিস্টেম যা DynamoDB টেবিলের সমস্ত ডেটা পরিবর্তন ট্র্যাক করে এবং এগুলি সিকোয়েন্সিয়ালভাবে স্টোর করে। এর মাধ্যমে আপনি ডেটাবেসের পরিবর্তনগুলো (যেমন ইনসার্ট, আপডেট, ডিলিট) পর্যবেক্ষণ করতে পারেন এবং AWS Lambda বা অন্যান্য সার্ভিসের মাধ্যমে সেই ডেটা প্রসেস করতে পারেন।

Streams এর বৈশিষ্ট্যসমূহ:

  1. Real-time Data Capture: টেবিলের ডেটা পরিবর্তনের সাথে সাথেই এটি স্ট্রিমে যোগ হয়, ফলে আপনি রিয়েল-টাইমে ডেটা প্রসেস করতে পারেন।
  2. Multiple Consumers: একাধিক কনজিউমার (যেমন, Lambda, Kinesis, বা অন্যান্য সার্ভিস) স্ট্রিম থেকে ডেটা গ্রহণ করতে পারে।
  3. Data Retention: স্ট্রিমে থাকা ডেটা 24 ঘণ্টা পর্যন্ত রিটেন করা হয়, তারপর এটি স্বয়ংক্রিয়ভাবে মুছে যায়।
  4. Change Data Capture (CDC): ডেটাবেসের সব পরিবর্তনগুলো ট্র্যাক করা হয়, যার মাধ্যমে আপনি সিস্টেমের যে কোন সময়ের অবস্থার জন্য ডেটা অনুসন্ধান করতে পারেন।

Streams কনফিগারেশন এবং ব্যবহার:

ধাপ ১: DynamoDB Streams সক্রিয় করা

DynamoDB Streams ব্যবহারের জন্য প্রথমে আপনাকে এটি আপনার টেবিলের জন্য সক্রিয় করতে হবে।

  1. AWS Management Console এ লগ ইন করুন এবং DynamoDB নির্বাচন করুন।
  2. আপনার টেবিল নির্বাচন করুন (যে টেবিলটির জন্য আপনি Streams চালাতে চান)।
  3. Overview পেজে গিয়ে, DynamoDB Streams এর সেকশনে Enable Stream এ ক্লিক করুন।
  4. স্ট্রিমের কী ধরনের ডেটা আপনি ট্র্যাক করতে চান, তা নির্বাচন করুন:
    • Keys only: শুধুমাত্র পরিবর্তিত আইটেমগুলির মূল কীগুলি (Partition Key এবং Sort Key) ট্র্যাক করা হবে।
    • New image: পরিবর্তিত আইটেমের পুরো নতুন ডেটা ট্র্যাক করা হবে।
    • Old image: পুরনো আইটেমের ডেটা ট্র্যাক করা হবে।
    • New and old images: পরিবর্তনের আগে এবং পরে দুই ধরনের ডেটাই ট্র্যাক করা হবে।

ধাপ ২: Lambda Function সেটআপ করা (Streams প্রসেস করার জন্য)

DynamoDB Streams থেকে ডেটা প্রসেস করার জন্য আপনি AWS Lambda ব্যবহার করতে পারেন। Lambda ফাংশন স্বয়ংক্রিয়ভাবে স্ট্রিমের পরিবর্তনগুলি গ্রহণ করবে এবং সেগুলি প্রসেস করবে।

  1. Lambda Function তৈরি করুন:
    • AWS Management Console এ লগ ইন করুন এবং Lambda সিলেক্ট করুন।
    • নতুন একটি Lambda ফাংশন তৈরি করুন।
    • Function code অংশে, আপনি যে কোডটি ব্যবহার করবেন, সেটি লিখুন বা আপলোড করুন।
  2. Lambda ফাংশনকে DynamoDB Streams এর সাথে সংযুক্ত করুন:
    • Lambda ফাংশনের Triggers পেজে গিয়ে DynamoDB নির্বাচন করুন।
    • আপনার টেবিলটি নির্বাচন করুন এবং স্ট্রিম টাইপ সিলেক্ট করুন।
    • ফাংশনটি স্ট্রিমের পরিবর্তনগুলি গ্রহণ করে প্রসেস করতে শুরু করবে।

ধাপ ৩: স্ট্রিমের ডেটা প্রসেস করা

যখন একটি পরিবর্তন ঘটে, DynamoDB Streams সেই পরিবর্তনটি সিকোয়েন্সিয়ালভাবে স্ট্রিমে যোগ করে। এই স্ট্রিমের ডেটা একাধিক সার্ভিস যেমন AWS Lambda, Amazon Kinesis, বা Amazon SQS এর মাধ্যমে প্রসেস করা যেতে পারে।

Lambda ফাংশন উদাহরণ:

import json

def lambda_handler(event, context):
    for record in event['Records']:
        # স্ট্রিম থেকে ডেটার তথ্য নিয়ে আসুন
        if record['eventName'] == 'INSERT':
            new_image = record['dynamodb']['NewImage']
            print(f"New item inserted: {json.dumps(new_image)}")
        elif record['eventName'] == 'MODIFY':
            updated_image = record['dynamodb']['NewImage']
            print(f"Item modified: {json.dumps(updated_image)}")
        elif record['eventName'] == 'REMOVE':
            removed_image = record['dynamodb']['OldImage']
            print(f"Item removed: {json.dumps(removed_image)}")
    return 'Successfully processed DynamoDB stream records.'

ধাপ ৪: স্ট্রিম ডেটার ব্যবহারের উদাহরণ

  1. Real-time Analytics: আপনি স্ট্রিম থেকে ডেটা নিয়ে রিয়েল-টাইম অ্যানালিটিক্স চালাতে পারেন। যেমন, ডেটার উপর কোনো রিপোর্ট বা গ্রাফ তৈরি করা।
  2. Data Sync: একাধিক DynamoDB টেবিল বা অন্য ডেটাবেসে ডেটা সিঙ্ক্রোনাইজ করা।
  3. Event-driven Architecture: কোনও পরিবর্তনের ভিত্তিতে নির্দিষ্ট ট্রিগার কার্যকর করা, যেমন সিস্টেমে নতুন ব্যবহারকারী যোগ হলে স্বয়ংক্রিয়ভাবে এক্সটেন্ডেড প্রসেস শুরু করা।

DynamoDB Streams এর সুবিধা:

  • Real-time Processing: ডেটার পরিবর্তনগুলিকে রিয়েল-টাইমে ট্র্যাক ও প্রসেস করা যায়।
  • Scalable: স্ট্রিমের মাধ্যমে আপনি বড় পরিসরের ডেটা পরিবর্তন হ্যান্ডেল করতে পারেন।
  • Integration with Other AWS Services: Lambda, Kinesis, SQS ইত্যাদির মাধ্যমে একাধিক AWS সার্ভিসের সাথে ইন্টিগ্রেশন করা সম্ভব।
  • Event-Driven Workflows: DynamoDB Streams বিভিন্ন ইভেন্ট-ড্রিভেন আর্কিটেকচার তৈরিতে সাহায্য করে, যা অ্যাপ্লিকেশনগুলির স্বয়ংক্রিয়তা এবং স্কেলিং ক্ষমতা বাড়ায়।

এটি DynamoDB Streams এর কনফিগারেশন এবং ব্যবহার সংক্রান্ত একটি সাধারণ গাইডলাইন। আপনি চাইলে আরও বিশেষায়িত কেসে এটি ব্যবহার করতে পারেন, যেমন ব্যাচ প্রসেসিং, ডেটা মাইগ্রেশন ইত্যাদি।

Content added By
Promotion